package com.centriole.service.workflow.service;

import com.centriole.service.workflow.entity.ProNode;
import com.centriole.service.workflow.enums.FlowNode;

import java.util.List;
import java.util.stream.Collectors;


/**流程节点Service
 * @author wukai
 *
 */
public interface ProNodeService {
	/**新增流程节点
	 * @param proNode
	 */
	public void insertNode(ProNode proNode);
	
	/**根据流程定义ID逻辑删除
	 * @param processId
	 */
	public void logicDeleteByProcessId(String processId);
	
	/**根据流程定义ID物理删除
	 * @param processId
	 */
	public void deleteByProcessId(String processId);
	
	/**根据流程定义ID查询流程节点
	 * @param processId
	 * @return
	 */
	public List<ProNode> selectByProcessId(String processId);
	
	/**根据节点ID查询流程节点
	 * @param id
	 * @return
	 */
	public ProNode selectById(String id);

	/**
	 * 2018/05/17新增：
	 * 【在调用该方法前，要确保该节点是一个“审批”节点】
	 * 判断该节点是否是 最后一个审批节点
	 * @param node	ProNode
	 * @return	true表示 是 ； false表示不是
	 */
	boolean isLastExamineNode(ProNode node);

}
